<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of persistenciaUsuario
 *
 * @author Agustin
 */
class ControladoraUsuario {

    private static $instance = false;

    public static function getInstance() {
        if (!self::$instance instanceof self) {
            self::$instance = new self;
        }
        return self::$instance;
    }

    private function __construct() {
        
    }

    public function login($usuario, $pass) {
        if (!isset($_SESSION)) {
            session_start();
        }
        require_once 'Modelo/usuario.php';
        require_once 'Modelo/permiso.php';
        require_once 'Modelo/persistenciaUsuario.php';
        require_once 'Modelo/persistenciaTrabajo.php';
        $pu = PersistenciaUsuario::getInstance();
        $usuario = $pu->login($usuario, $pass);

        if ($usuario != null) {
            $p = $usuario->permiso;
            $array = array('id' => $usuario->id, "nombre" => $usuario->nombre, 'contrasenia' => $usuario->contrasenia, 'permiso' => $p->nombre, 'idPersona' => $usuario->idPersona);
            $_SESSION['usuario'] = $array;
            $_SESSION['autorizado'] = true;
            $pt = PersistenciaTrabajo::getInstance();

            $this->alertasPendientesPago();
            $pt->reorganizar();
        } else {
            $_SESSION['ERROR'] = 'Usuario o contrasenia invalidos';
        }
    }

    public function alertasPendientesPago() {
        if (!isset($_SESSION)) {
            session_start();
        }
        require_once 'Modelo/persistenciaOrden.php';
        $po = PersistenciaOrden::getInstance();
        if ($po->alertaOrdenesAtrasadas()) {
            $_SESSION['ordenAtrasadas'] = true;
        } else {
            $_SESSION['ordenAtrasadas'] = false;
        }
        if ($po->alertaFechaCobro()) {
            $_SESSION['ordenFechaCobro'] = true;
        } else {
            $_SESSION['ordenFechaCobro'] = false;
        }
        if ($po->alertaF()) {
            $_SESSION['fidelizar'] = true;
        } else {
            $_SESSION['fidelizar'] = false;
        }
    }

    public function asignarUsuarioPersona($datos) {
        require_once('Modelo/persistenciaUsuario.php');
        $p = PersistenciaUsuario::getInstance();
        $aux = $p->asignarUsuarioPersona($datos);
        if ($aux == 1) {
            $res = '<script>
                    $("#contenedor").ready(function(){
                        document.getElementById("btnUser").disabled=true;
                        document.getElementById("btnDelUser").disabled=true;
                    }); </script>
                    <h4>Modificado con éxito</h4>';
        } else if ($aux == 2) {
            $res = '<script>
                    $("#contenedor").ready(function(){
                        document.getElementById("btnUser").disabled=true;
                    }); </script>
                    <h4>Agregado con éxito</h4>';
        } else if ($aux == 3) {
            $res = '<h4>Ya existe ese usuario</h4>';
        }
        return $res;
    }

    public function delLogin($id) {
        require_once('Modelo/persistenciaUsuario.php');
        $p = PersistenciaUsuario::getInstance();
        $aux = $p->delLogin($id);
        if ($aux) {
            return '<script>
                    $("#contenedor").ready(function(){
                        document.getElementById("btnUser").disabled=true;
                        document.getElementById("btnDelUser").disabled=true;
                    }); </script>
                    <h4>Eliminado con éxito</h4>';
        } else {
            return '<h4>No se ha podido eliminar</h4>';
        }
    }

    public function traerUsuarioPersona($id) {
        require_once('../Modelo/persistenciaUsuario.php');
        $p = PersistenciaUsuario::getInstance();
        return $p->leerLogin($id);
    }

}

?>
